import Blockly from 'blockly'

Blockly.defineBlocksWithJsonArray([
  {
    type: "php_echo",
    message0: "输出内容 %1",
    args0: [
      {
        type: "input_value",
        name: "text",
        align: "CENTRE"
      }
    ],
    colour: 150,
    tooltip: "",
    helpUrl: ""
  },
  {
    type: 'math_evenly_divisible',
    message0: '%1 能被 %2 整除',
    args0: [
      {
        type: 'input_value',
        name: 'DIVIDEND',
        check: 'Number',
        value: 0
      },
      {
        type: 'input_value',
        name: 'DIVISOR',
        check: 'Number',
        value: 0
      }
    ],
    output: 'Boolean',
    style: 'calculation',
    tooltip: '判断第一个数是否恰好被第二个数整除。'
  },
  {
    type: 'lists_split',
    message0: '把 %1 按 %2 %3',
    args0: [
      {
        type: 'input_value',
        name: 'INPUT',
        check: ['String', 'Array']
      },
      {
        type: 'input_value',
        name: 'DELIM',
        check: 'String'
      },
      {
        type: 'field_dropdown',
        name: 'MODE',
        options: [
          ['分开成列表', 'SPLIT'],
          ['合并为文本', 'JOIN']
        ]
      }
    ],
    output: ['String', 'Array'],
    style: 'calculation',
    tooltip: '将文本分开成列表或将列表合并为文本。'
  },
  {
    type: 'text_charAt',
    message0: '取 %1 %2 第 %3 个字符',
    args0: [
      {
        type: 'input_value',
        name: 'VALUE',
        check: 'String'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX',
        check: 'Number'
      }
    ],
    output: 'String',
    style: 'calculation',
    tooltip: '取文本指定位置的字符。'
  },
  {
    type: 'text_getSubstring',
    message0: '取 %1 %2 第 %3 到 %4 第 %5 个字符',
    args0: [
      {
        type: 'input_value',
        name: 'VALUE',
        check: 'String'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE1',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX1',
        check: 'Number'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE2',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX2',
        check: 'Number'
      }
    ],
    output: 'String',
    style: 'calculation',
    tooltip: '取文本指定位置的字符。'
  },
  {
    type: 'math_types',
    message0: '把 %1 转换为 %2 类型',
    args0: [
      {
        type: 'input_value',
        name: 'VALUE'
      },
      {
        type: 'field_dropdown',
        name: 'TYPE',
        options: [
          ['字符串', 'STRING'],
          ['数值', 'NUMBER'],
          ['布尔', 'BOOLEAN']
        ]
      }
    ],
    output: 'String',
    style: 'calculation',
    tooltip: '将对象转换为指定类型。'
  },
  {
    type: 'lists_push',
    message0: '添加 %1 到 %2 末尾',
    args0: [
      {
        type: 'input_value',
        name: 'VALUE',
        check: 'Number'
      },
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      }
    ],
    previousStatement: null,
    nextStatement: null,
    style: 'lists',
    tooltip: '添加值到列表的末尾。'
  },
  {
    type: 'lists_insert',
    message0: '插入 %1 到 %2 %3 第 %4 项后面',
    args0: [
      {
        type: 'input_value',
        name: 'VALUE'
      },
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX',
        check: 'Number'
      }
    ],
    previousStatement: null,
    nextStatement: null,
    style: 'lists',
    tooltip: '添加值到列表的末尾。'
  },
  {
    type: 'lists_delete',
    message0: '删除 %1 %2 第 %3 项',
    args0: [
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX',
        check: 'Number'
      }
    ],
    previousStatement: null,
    nextStatement: null,
    style: 'lists_delete',
    tooltip: '删除列表的指定项。'
  },
  {
    type: 'lists_set',
    message0: '替换 %1 %2 第 %3 项为 %4',
    args0: [
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX',
        check: 'Number'
      },
      {
        type: 'input_value',
        name: 'VALUE'
      }
    ],
    previousStatement: null,
    nextStatement: null,
    style: 'lists',
    tooltip: '替换列表的指定项。'
  },
  {
    type: 'lists_get',
    message0: '%1 %2 第 %3 项',
    args0: [
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'field_dropdown',
        name: 'WHERE',
        options: [
          ['正数', 'FROM_START'],
          ['倒数', 'FROM_END']
        ]
      },
      {
        type: 'input_value',
        name: 'INDEX',
        check: 'Number'
      }
    ],
    output: 'Any',
    style: 'lists',
    tooltip: '获取列表的指定项。'
  },
  {
    type: 'lists_index',
    message0: '%1 中 %2 %3 的位置',
    args0: [
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'field_dropdown',
        name: 'WHICH',
        options: [
          ['第一个', 'FIRST'],
          ['最后一个', 'LAST']
        ]
      },
      {
        type: 'input_value',
        name: 'VALUE'
      }
    ],
    output: 'Number',
    style: 'lists',
    tooltip: '返回在列表中的第一个/最后一个匹配项的索引值，如果找不到项目则返回列表本身。'
  },
  {
    type: 'lists_includes',
    message0: '%1 中包含 %2',
    args0: [
      {
        type: 'input_value',
        name: 'LIST',
        check: 'Array'
      },
      {
        type: 'input_value',
        name: 'VALUE'
      }
    ],
    output: 'Boolean',
    style: 'lists',
    tooltip: '列表中是否包含指定项。'
  },
  {
    "type": "php_echo",
    "message0": "输出内容 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "text",
        "check": ["String","Number","Object"]
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_print",
    "message0": "print_r输出内容 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "text",
        "check": ["String","Number","Array","other"]
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_get",
    "message0": "获取GET参数  参数名 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "key",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": 'String',
  },
  {
    "type": "php_post",
    "message0": "获取POST参数  参数名 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "key",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": 'String',
  },
  {
    "type": "php_html_safe",
    "message0": "HTMl转义  HTML内容 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "html",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_include",
    "message0": "include  脚本地址 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "url",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "若被引用脚本出现错误，include 只生成警告（E_WARNING），并且脚本会继续",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_require",
    "message0": "require  脚本地址 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "url",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "若被引用脚本出现错误，require 会生成致命错误（E_COMPILE_ERROR）并停止脚本",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_text",
    "message0": "“ %1 ”",
    "args0": [
      {
        "type": "field_input",
        "name": "text",
        "text": ""
      }
    ],
    "colour": 230,
    "tooltip": "若被引用脚本出现错误，require 会生成致命错误（E_COMPILE_ERROR）并停止脚本",
    "helpUrl": "",
    "output": "String"
  },
  {
    "type": "php_get_cookie",
    "message0": "读取cookie 键：%1",
    "args0": [
      {
        "type": "input_value",
        "name": "key",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "String"
  },
  {
    "type": "php_get_session",
    "message0": "读取session 键：%1",
    "args0": [
      {
        "type": "input_value",
        "name": "key",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": ["Any","String","Number"]
  },
  {
    "type": "php_start_session",
    "message0": "开启session",
    "args0": [],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_md5",
    "message0": "MD5 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "text",
        "check": ['String','Number','booler']
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "String"
  },
  {
    "type": "php_sha256",
    "message0": "SHA256 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "text",
        "check": ['String','Number','booler']
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "String"
  },
  {
    "type": "php_read_file",
    "message0": "读取文件 %1",
    "args0": [
      {
        "type": "input_value",
        "name": "path",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "String"
  },
  {
    "type": "php_sql_connect_po",
    "message0": "链接数据库 地址%1 用户名%2 密码%3 库名%4",
    "args0": [
      {
        "type": "input_value",
        "name": "path",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "name",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "pw",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "db_name",
        "check": "String"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "Object"
  },
  {
    "type": "php_write_session",
    "message0": "设置 键%1 的值为%2",
    "args0": [
      {
        "type": "input_value",
        "name": "key",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "value",
        "check": ["String",'Object','Number']
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php",
    "message0": "PHP标签头 %1 \n结束",
    "args0": [
      {
        "type": "input_statement",
        "name": "block"
      },
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_write",
    "message0": "写入文件 路径%1 内容%2",
    "args0": [
      {
        "type": "input_value",
        "name": "path",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "text",
        "check": "String"
      },
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_cors",
    "message0": "允许跨域",
    "args0": [],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "php_get_time",
    "message0": "当期时间",
    "args0": [],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": "Number"
  },
  {
    "type": "html_customize",
    "message0": "HTML元素 %1 %2 属性 %3 内容 %4",
    "args0": [
      {
        "type": "field_input",
        "name": "NAME",
        "text": "p"
      },
      {
        "type": "input_dummy"
      },
      {
        "type": "input_statement",
        "name": "attr"
      },
      {
        "type": "input_statement",
        "name": "text"
      }
    ],
    "inputsInline": true,
    "previousStatement": null,
    "nextStatement": null,
    "colour": 230,
    "tooltip": "",
    "helpUrl": ""
  },
  {
    "type": "html_customize_attr",
    "message0": "HTML元素属性 %1 %2",
    "args0": [
      {
        "type": "field_input",
        "name": "name",
        "text": "name"
      },
      {
        "type": "field_input",
        "name": "value",
        "text": "value"
      }
    ],
    "previousStatement": null,
    "nextStatement": null,
    "colour": 230,
    "tooltip": "",
    "helpUrl": ""
  },
  {
    "type": "html_customize_text",
    "message0": "纯文本 %1",
    "args0": [
      {
        "type": "field_input",
        "name": "text",
        "text": "内容"
      },
    ],
    "previousStatement": null,
    "nextStatement": null,
    "colour": 230,
    "tooltip": "",
    "helpUrl": ""
  },
  {
    "type": "html_h1",
    "message0": "h1标题 内容%1 属性%2",
    "args0": [
      {
        "type": "input_statement",
        "name": "text"
      },
      {
        "type": "input_statement",
        "name": "attr"
      },
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "html_style",
    "message0": "样式 %1 ",
    "args0": [
      {
        "type": "input_statement",
        "name": "css"
      },
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "html_style_width",
    "message0": "宽度 %1 %2",
    "args0": [
      {
        "type": "input_value",
        "name": "value",
        "check": "Number"
      },
      {
        type: 'field_dropdown',
        name: 'unit',
        options: [
          ['像素px', 'px'],
          ['百分比%', '%']
        ]
      },
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    previousStatement: null,
    nextStatement: null,
  },
  {
    "type": "mysqli_connect_error",
    "message0": "MySql链接报错",
    "args0": [
    ],
    "output": "String",
    "colour": 230,
    "tooltip": "",
    "helpUrl": ""
  },
  {
    "type": "php_sql_query",
    "message0": "MySql语句执行 语句%1 链接对象%2",
    "args0": [
      {
        "type": "input_value",
        "name": "sql",
        "check": "String"
      },
      {
        "type": "input_value",
        "name": "object",
        "check": "Object"
      }
    ],
    "colour": 230,
    "tooltip": "",
    "helpUrl": "",
    "output": ['String','Number','booler']
  },
])
